package com.corticon.dialogs.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 *
 * @author Liang Zhang
 */
@Entity
@Table(name = "ql_datavalidation")
public class DataValidation extends LookupBase implements Serializable {

    private static final long serialVersionUID = 1L;
    private String expression;
    private DataValidationType dataValidationType;
//    private Set<ResponseType> responseTypes = new HashSet<ResponseType>();
//    private Set<Locale> localesForDefaultTimeMask = new HashSet<Locale>();
//    private Set<Locale> localesForDefaultDateTimeMask = new HashSet<Locale>();
//    private Set<Locale> localesForDefaultDateMask = new HashSet<Locale>();
//    private Set<Questionnaire> questionnairesForDefaultDateMask = new HashSet<Questionnaire>();
//    private Set<Questionnaire> questionnairesForDefaultDateTimeMask = new HashSet<Questionnaire>();
//    private Set<Questionnaire> questionnairesForDefaultTimeMask = new HashSet<Questionnaire>();
//    private Set<Response> responses = new HashSet<Response>();

    public DataValidation() {
    }

    @Override
    public void init() {
        super.init();
        dataValidationType =
            dataValidationType == null ? new DataValidationType() : dataValidationType;
    }

    @Column(name = "expression", length = 256)
    public String getExpression() {
        return expression;
    }

    public void setExpression(String expression) {
        this.expression = expression;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "typeassoc_code_oid", nullable = true)
    public DataValidationType getDataValidationType() {
        return dataValidationType;
    }

    public void setDataValidationType(DataValidationType dataValidationType) {
        this.dataValidationType = dataValidationType;
    }

//    public Set<Locale> getLocalesForDefaultDateMask() {
//        return localesForDefaultDateMask;
//    }
//
//    public void setLocalesForDefaultDateMask(Set<Locale> localesForDefaultDateMask) {
//        this.localesForDefaultDateMask = localesForDefaultDateMask;
//    }
//
//    public Set<Locale> getLocalesForDefaultDateTimeMask() {
//        return localesForDefaultDateTimeMask;
//    }
//
//    public void setLocalesForDefaultDateTimeMask(Set<Locale> localesForDefaultDateTimeMask) {
//        this.localesForDefaultDateTimeMask = localesForDefaultDateTimeMask;
//    }
//
//    public Set<Locale> getLocalesForDefaultTimeMask() {
//        return localesForDefaultTimeMask;
//    }
//
//    public void setLocalesForDefaultTimeMask(Set<Locale> localesForDefaultTimeMask) {
//        this.localesForDefaultTimeMask = localesForDefaultTimeMask;
//    }
//
//    public Set<Questionnaire> getQuestionnairesForDefaultDateMask() {
//        return questionnairesForDefaultDateMask;
//    }
//
//    public void setQuestionnairesForDefaultDateMask(
//        Set<Questionnaire> questionnairesForDefaultDateMask) {
//        this.questionnairesForDefaultDateMask = questionnairesForDefaultDateMask;
//    }
//
//    public Set<Questionnaire> getQuestionnairesForDefaultDateTimeMask() {
//        return questionnairesForDefaultDateTimeMask;
//    }
//
//    public void setQuestionnairesForDefaultDateTimeMask(
//        Set<Questionnaire> questionnairesForDefaultDateTimeMask) {
//        this.questionnairesForDefaultDateTimeMask = questionnairesForDefaultDateTimeMask;
//    }
//
//    public Set<Questionnaire> getQuestionnairesForDefaultTimeMask() {
//        return questionnairesForDefaultTimeMask;
//    }
//
//    public void setQuestionnairesForDefaultTimeMask(
//        Set<Questionnaire> questionnairesForDefaultTimeMask) {
//        this.questionnairesForDefaultTimeMask = questionnairesForDefaultTimeMask;
//    }
//
//    public Set<ResponseType> getResponseTypes() {
//        return responseTypes;
//    }
//
//    public void setResponseTypes(Set<ResponseType> responseTypes) {
//        this.responseTypes = responseTypes;
//    }
//
//    public Set<Response> getResponses() {
//        return responses;
//    }
//
//    public void setResponses(Set<Response> responses) {
//        this.responses = responses;
//    }
}
